package com.marketingcenter.service;

import com.marketingcenter.entity.Promotion;
import java.util.List;
import java.time.LocalDateTime;

/**
 * 营销活动通用服务接口
 */
public interface PromotionService<T extends Promotion> {

    /**
     * 创建营销活动
     */
    T create(T promotion);

    /**
     * 更新营销活动
     */
    T update(T promotion);

    /**
     * 删除营销活动
     */
    void delete(Long id);

    /**
     * 根据ID查询营销活动
     */
    T findById(Long id);

    /**
     * 查询所有营销活动
     */
    List<T> findAll();

    /**
     * 根据状态查询营销活动
     */
    List<T> findByStatus(Integer status);

    /**
     * 查询在有效期内的营销活动
     */
    List<T> findActivePromotions();

    /**
     * 启用营销活动
     */
    void enable(Long id);

    /**
     * 停用营销活动
     */
    void disable(Long id);

}